package miniBanco.Core;

import java.util.ArrayList;
import java.util.List;
import miniBanco.Exceptions.HandledException;


public class Cliente extends Persona {
	//Privadas
	private int nroCliente;
	private int Cuit;
	private List<Cuenta> cuentas;
	//
	//Constructor
	public Cliente(int nroCliente)
	{
		cuentas = new ArrayList<Cuenta>();
		this.nroCliente = nroCliente;
	}
	//
	// Getters Setters
	public int getNroCliente() {
		return nroCliente;
	}
	
	public void setCuentas(List<Cuenta> cuentas)
	{
		this.cuentas = cuentas;
	}
	public Cuenta getCuentaById(long idCuenta)
	{
		Cuenta cuenta = null;
		for(Cuenta c:cuentas)
		{
			if(c.getID() == idCuenta)
			{
				cuenta = c;
			}
		}
		return cuenta;
	}
	public List<Cuenta> getCuentas() {
		return cuentas;
	}
	public int getCuit() {
		return Cuit;
	}
	public void setCuit(int cuit) {
		isDirty = true;
		Cuit = cuit;
	}
	//
	//Metodos
	public void AgregarCuenta(Cuenta cuenta )
	{
		if (cuenta == null)
			throw new HandledException("Debe especificar una cuenta");
	
		//Verifico que no exista ya la cuenta
		if(cuentas.contains(cuenta))
		{
			throw new HandledException("Cuenta ya existe");
		};
		cuentas.add(cuenta);
		cuenta.setCliente(this);
	}
}
